#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e6 + 3;

char buf[(int)5e7];
char *fs = buf;

inline int gn() { 
  int k = 0;
  char c = *fs++;
  for (; !isdigit(c); c = *fs++);
  for (; isdigit(c); c = *fs++) k = k * 10 + c - '0';
  return k;
}

int n, m, a[maxn], sum[maxn], lft[maxn], c[maxn], lz[maxn], unit, cnt = 1, bel[maxn];

void build() {
  for (int i = 1, k = 1; i <= n; i++, k++) { 
    bel[i] = cnt;
    sum[cnt] += a[i];
    if (k == 1) lft[cnt] = i;
    if (k == unit) k = 0, cnt++;
  }
  lft[cnt + 1] = n + 1;
}

void pd(int x) { 
  for (int i = lft[x]; i < lft[x + 1]; i++)
    a[i] += lz[x];
  lz[x] = 0;
}

void add(int l, int r, int k) { 
  if (bel[l] == bel[r]) { 
    if (lz[bel[l]]) pd(bel[l]);
    for (int i = l; i <= r; i++)
      a[i] += k;
  } else { 
    if (lz[bel[l]]) pd(bel[l]);
    if (lz[bel[r]]) pd(bel[r]);
    for (int i = l; i <= lft[bel[l] + 1]; i++) 
      a[i] += k;
    for (int i = lft[r]; i <= r; i++) 
      a[i] += k;
    for (int i = bel[l] + 1; i < bel[r]; i++)
      lz[i] += k,
      sum[i] += k * (lft[i + 1] - lft[i]);
  }
}

int ask(int l, int r) { 
  int ans = 0;
  if (bel[l] == bel[r]) { 
    if (lz[bel[l]]) pd(bel[l]);
    for (int i = l; i <= r; i++)
      ans += a[i];
  } else { 
    if (lz[bel[l]]) pd(bel[l]);
    if (lz[bel[r]]) pd(bel[r]);
    for (int i = l; i <= lft[bel[l] + 1]; i++) 
      ans += a[i];
    for (int i = lft[r]; i <= r; i++) 
      ans += a[i];
    for (int i = bel[l] + 1; i < bel[r]; i++)
      ans += sum[i];
  }
  return ans;
}

int main() { 
  fread(buf, 1, (int)5e7, stdin);
  n = gn(), m = gn();
  unit = sqrt(n);
  for (int i = 1; i <= n; i++) 
    a[i] = gn();
  sort(a + 1, a + n + 1);
  for (int i = 1; i <= m; i++)
    c[i] = gn();
  build();
  for (int i = 1; i <= m; i++) { 
    int l = lower_bound(a + 1, a + n + 1)
  }
}
